/**
 * @param {number[]} nums
 * @return {number}
 */
/* 
由于不可以在相邻的房屋闯入，
所以在当前位置 n 房屋可盗窃的最大值，
要么就是 n-1 房屋可盗窃的最大值，
要么就是 n-2 房屋可盗窃的最大值加上当前房屋的值，
二者之间取最大值
*/
var rob = function (nums) {
  const len = nums.length;
  if (len == 0) return 0;
  const dp = new Array(len + 1);
  dp[0] = 0;
  dp[1] = nums[0];
  for (let i = 2; i <= len; i++) {
    dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i - 1]);
  }
  return dp[len];
};
